﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Hallenberg.SmartClient.Events;
using Hallenberg.Core;

namespace Hallenberg.SmartClient.Interfaces
{
    public interface IEventManager
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
        void Register<TArgument>(bool async, EventHandler<EventArgs<TArgument>> eventHandler);

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate")]
        void Raise<T>(object sender, T value);
    }
}
